<?php 
namespace Home\Model;
use Think\Model;
Class UserModel extends Model{     
protected $_map = array(        
 		 'mobile' =>'tel', 
 // 把表单中name映射到数据表的username字段 
         'pwd'  =>'password', 
 // 把表单中的pass映射到数据表的pwd字段     
         'mobile'   =>"tel",    
         // 'ming'=>'realname',
         // 'card'=>'usercard',
   );
    //自动验证
    protected $_validate = array(  
    array('tel','','用户名不能为空或已经注册过了！',0,'unique',1), // 在新增的时候验证name字段是否唯一 
    array('password','','^[a-zA-Z]\w{5,17}$','密码格式不正确',2,'regex',3), // 在新增的时候验证name字段是否唯一  
    array('tel',"(\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$",'手机号格式不正确',2,'regex',3),// 自定义函数验证密码格式  
    array('apwd','password','再次输入密码',0,'confirm',1), // 验证确认密码是否和密码一致   
);
 //自动完成
    protected $_auto = array ( 
     // array('status','1'), // 新增的时候把status字段设置为1        
     array('password','md5',3,'function') ,  // 对password字段在新增和编辑的时候使md5函数处理                 
     array('createtime','getdate',3,'callback'),  // 对update_time字段在更新的时候写入当前时间戳     
     );
            public function getdate()
        {
            return $da=date("Y-m-d H:i:s",time());  
        }



// public function getByUname($name)
// {
//    $this->where()->find();
// }
//          //验证登录信息
    public function checkName($name,$pwd){
        $admin = M("User");
       return $info = $admin->where("tel=".$name)->find();
        if($info != null){
            //验证密码
            if($info['upwd'] == $pwd){
                return $info;
            }else{
                return false;
            }
        }else{
            return false;
        }
    }

    //当用户勾选"记住我"
    public function saveRemember($uid,$identifier,$token,$out){
        $admin = M("User");
        $data['identifier'] = $identifier;
        $data['token'] = $token;
        $data['outTime'] = $out;  
        $where = " id = ".$uid;
        $res = $admin->where($where)->save($data);
        return $res;
    }

    //验证用户是否永久登录（记住我）
    public function checkRemember(){
        $arr = array();
        $now = time();

        list($identifier,$token) = explode(':',$_COOKIE['auth']);
        if (ctype_alnum($identifier) && ctype_alnum($token)){
            $arr['identifier'] = $identifier;
            $arr['token'] = $token;
        }else{
            return false;
        }

        $admin = M("User");
        $info = $admin->getByidentifier($arr['identifier']);  
           
        if($info != null){
            if($arr['token'] != $info['token']){
                return false;
            }else if($now > $info['timeout']){
                return false;
            }else{
                return $info;
            }
        }else{
            return false;
        }
    }
}
?>

